package deepr.filter;


import deepr.filter.FilterParser;
import deepr.core.PropertyData;

import java.lang.reflect.InvocationTargetException;
import java.text.ParseException;

public interface DbFilterActionBehavior {

    StringBuilder like(FilterParser parser, String object, String property, String paramKey, Object value);

    StringBuilder between(FilterParser parser, String object, String property, String paramKey, Object value);

    StringBuilder restAction(FilterParser parser, String object, String property, String paramKey, Object value, String action);

    StringBuilder jsonKey(FilterParser parser, String object, PropertyData properData, String property, String[] jsonKeys, Object value, String action) throws InvocationTargetException, NoSuchMethodException, InstantiationException, ParseException, IllegalAccessException;

    StringBuilder jsonAt(FilterParser parser, String object, String property, String paramKey, Object value);

    StringBuilder valueArray(FilterParser parser, String object, String property, String paramKey, Object value);

    StringBuilder propertyArray(FilterParser parser, String object, String property, String paramKey, Object value);

    StringBuilder twoArray(FilterParser parser, String object, String property, String paramKey, Object value);

}
